import axios from 'axios'
import {Message} from 'element-ui'
import qs from 'qs'

// 创建axios实例
const service = function (obj) {
    console.log("obj",obj)
    console.log("process.env.NODE_ENV",process.env.NODE_ENV)
    let loc = ''
    var host = window.location.hostname;
    let apiUrl = ''
    if (typeof window != "undefined") {
        loc = window.location.hostname || window.location.protocol
    }
    if (process.env.NODE_ENV === 'development' || loc == "file:" || loc == "localhost") {
        apiUrl = process.env.VUE_APP_BASE_API
    } else if(host=='https://arlive.sixeco.com/'){
        apiUrl = 'https://arlive.sixeco.com/im/'
    } else{
        apiUrl = 'https://arlive.sixeco.com/im/'
    }
//  axios.defaults.baseURL = 'baseApi/'
//  axios.defaults.baseURL = process.env.VUE_APP_BASE_API
    axios.defaults.timeout = 60000

    console.log("host",host)

    if(!obj.other){
        // obj.url = obj.url
        obj.url = apiUrl + obj.url
    }
    console.log("obj.url",obj.url)
    return axios(obj)
}

// request拦截器
axios.interceptors.request.use(
    config => {
        // config.withCredentials =true;

        const flag = config.headers['Content-Type'] && config.headers['Content-Type'].indexOf('application/json') !== -1
        if (!flag) {
            const mult = config.headers['Content-Type'] && config.headers['Content-Type'].indexOf('multipart/form-data') !== -1
            if (mult) {
                config.data = config.data
            } else {
                config.data = qs.stringify(config.data)
            }
        } else {
            if (config.data === undefined || config.data === null) {
                // 不传参的情况下 json类型的提交数据，校准为 空对象
                config.data = {}
            }
        }
        // for (let i in config.data) {
        //   //  console.log(config.data[i], typeof config.data[i] == 'string',i)
        //   if (typeof config.data[i] == 'string' && i == 'companyLogo') {
        //     console.log(config.data[i], typeof config.data[i] == 'string')
        //     config.data[i] = config.data[i].indexOf("/api/crm/") > -1 ? config.data[i].replace(new RegExp('api/crm', 'g'), "").replace(new RegExp('///', 'g'), "") : config.data[i];
        //   }
        // }
        return config
    },
    error => {
        // Do something with request error
        return Promise.reject(error)
    }
)

// http response 拦截器
axios.interceptors.response.use(
    response => {
        const res = response
        if (res.data.code !== 0 && res.data.code !== 200) {
            // 302	登录已失效
            if (res.data.code === 302) {
                // if (res.data.extra === 1) {
                //   // confirmMessage(`您的账号${res.data.extraTime}在别处登录。如非本人操作，则密码可能已泄漏，建议修改密码`)
                // } else {
                //   // clearCacheEnterLogin()
                // }
            } else if (res.data.code === 1005) {
                // router.push('/welcome')
            } else {
                if (res.data.msg) {
                    Message.error(res.data.msg)
                }
            }
            return Promise.reject(res)
        } else {
            return res
        }
    },
    error => {
        alert('请求出错')
        Message.error('接口请求出错')
        // if (error.response) {
        //   Message.error(response.msg)
        // }
    });

// response 拦截器
// axios.interceptors.response.use(
//   response => {
//     /**
//      * code为非20000是抛错 可结合自己业务进行修改
//      */
//     const res = response.data

//     if (res.data) {
//       if (res.data.url) {
//         res.data.url = res.data.url.indexOf('http') > -1 ? res.data.url : process.env.VUE_APP_BASE_API + res.data.url
//       }

//     }
//     if (response.status === 200 && response.config.responseType === 'blob') { // 文件类型特殊处理
//       if (response.headers['content-disposition'] || (response.headers['content-type'] && response.headers['content-type'].indexOf('application/pdf') != -1)) {
//         return response
//       } else {
//         const resultBlob = new Blob([response.data], {
//           type: 'application/json'
//         })
//         const fr = new FileReader()
//         fr.onload = function () {
//           const result = JSON.parse(this.result)
//           if (result.msg) {
//             // errorMessage(result.msg, result.code == 1 ? 'success' : 'error')
//           }
//         }
//         fr.readAsText(resultBlob)
//       }
//     } else if (res.code !== 0 && res.code !== 200) {
//       // 302	登录已失效
//       if (res.code === 302) {
//         if (res.data.extra === 1) {
//           // confirmMessage(`您的账号${res.data.extraTime}在别处登录。如非本人操作，则密码可能已泄漏，建议修改密码`)
//         } else {
//           // clearCacheEnterLogin()
//         }
//       } else if (res.code === 1005) {
//         // router.push('/welcome')
//       } else {
//         if (res.msg) {
//           // errorMessage(res.msg)
//         }
//       }
//       return Promise.reject(res)
//     } else {
//       return res
//     }
//   },
//   error => {
//     // console.log(error, "error")
//     if (error.response) {
//       const response = error.response
//       if (response.status == 500) {
//         // errorMessage('网络错误，请检查您的网络')
//       } else if (response.data && response.data.msg) {
//         // errorMessage(response.data.msg)
//       }
//     }
//     return Promise.reject(error)
//   }
// )

export default service